<?php

class Becario_model extends CI_Model
{
	private $db_b;
	
	function __construct()
	{
		parent::__construct();
		$this->db_b=$this->load->database('academica',true);
	}
	
	/*
	*	Nombre: verificar_extudiante
	*	Objetivo: Verificar si el estudiante existe
	*	Hecha por: Jhonatan
	*	Modificada por: Jhonatan
	*	Última Modificación: 12/08/2014
	*	Observaciones: Ninguna.
	*/
	
	function guardar_becario($info)
	{
		extract($info);
		
		$query="SELECT * FROM estudiante  e WHERE e.carnet = '".$carnet."'";
		$query=$this->db->query($query);
		
		$a=$query->result_array();
		if(sizeof($a)==0){
			$query="INSERT INTO estudiante( nombres, apellidos, carnet, id_direccion, telefono, correo, becario, estado, id_carrera,sexo) 
								VALUES ( '".$nombre."', '".$apellido."', '".$carnet."', ".$id_direccion.", '".$telefono."', '".$email."', TRUE, 1, ".$id_carrera.",'$sexo');";

		}else{
			$query="UPDATE estudiante SET becario = TRUE, id_direccion='".$id_direccion."',telefono='".$telefono."', sexo='$sexo',correo='$email' WHERE carnet ='".$carnet."'";

		}
		$this->db->query($query);
		
	}
function guardar_direccion($info){
		extract($info);

		$sentecia="INSERT INTO direccion( comunidad,id_municipio,detalle) 
					VALUES ( '".$comunidad."', '".$municipio."', '".$detalle."');";

		$query=$this->db->query($sentecia);
		 return $this->db->insert_id();
	}

function consultar_carrera($codigo){
		
		$sentecia="SELECT id_carrera FROM carrera WHERE codigo = '".$codigo."'";
		$query=$this->db->query($sentecia);
		return $query->result_array();		

	}

function consultar_becarios($id_estudiante=NULL){
	$where="";
	if($id_estudiante!=NULL){
		$where="AND e.id_estudiante= $id_estudiante";
	}
			$sentecia="SELECT carnet, 
								CONCAT_WS (' ', e.nombres, e.apellidos) as estudiante, 
								C.codigo as carrera,
								C.id_carrera, 
								C.nombre as carrera_nom,
								e.id_estudiante,
								d.*,
								e.correo,
								e.sexo,
								e.telefono								
						FROM estudiante e 
						INNER JOIN carrera C ON e.id_carrera = C.id_carrera 
						INNER JOIN direccion  d USING(id_direccion)
						WHERE e.becario=TRUE $where";

			$query=$this->db->query($sentecia);
			return $query->result_array();		
	}
function guardar_proyecto($info)
{
	extract($info);
	$sentecia="INSERT INTO proyecto_becario (nombre,inicioproyecto,	finproyecto, id_direccion,ciclo)
		VALUES('$titulo','$inicio','$fin',$id_direccion,'$ciclo')";
		$query=$this->db->query($sentecia);
}

function consultar_proyectos($id_proyecto=NULL)
{
	$where="";
	if ($id_proyecto!=NULL) {
		$where=" WHERE id_proyecto=".$id_proyecto;
	}

	$sentecia="SELECT
				p.id_proyecto,
				p.nombre,
				p.ciclo,
				to_char(inicioproyecto,'dd-mm-yyyy') as inicio,
				to_char(finproyecto,'dd-mm-yyyy') as fin,
				d.detalle,
				d.comunidad,
				d.id_municipio,
				m.municipio,
				de.departamento,
				d.id_direccion
			FROM proyecto_becario p
			INNER JOIN direccion d ON p.id_direccion = d.id_direccion 
			INNER JOIN org_municipio m ON m.id_municipio = d.id_municipio
			INNER JOIN org_departamento de ON de.id_departamento = m.id_departamento_pais
			".$where."
			ORDER BY
				id_proyecto DESC"; 
	$query=$this->db->query($sentecia);
	return $query->result_array();		
}
function municipios()
{
	$sentencia="SELECT DISTINCT
					org_municipio.id_municipio AS id,
					LOWER(CONCAT_WS(', ', org_departamento.departamento, org_municipio.municipio)) AS nombre
					FROM
					org_municipio
					INNER JOIN org_departamento ON org_municipio.id_departamento_pais = org_departamento.id_departamento";
		$query=$this->db->query($sentencia);
		return (array)$query->result_array();
		
}
function actualizar_direccion($info)
{
			extract($info);

		$sentecia="UPDATE direccion SET  comunidad ='".$comunidad."', id_municipio = '".$municipio."',detalle= '".$detalle."' WHERE id_direccion = $id_direccion;";

		$query=$this->db->query($sentecia);
}


function actualizar_proyecto($info){
		extract($info);
		$sentecia="UPDATE proyecto_becario SET nombre= '$titulo',inicioproyecto='$inicio',	finproyecto ='$fin', ciclo='$ciclo' WHERE id_proyecto=".$id_proyecto;
		
		$query=$this->db->query($sentecia);
}

function eliminar_proyecto($id_proyecto){
	
		$sentecia="DELETE FROM proyecto_becario WHERE id_proyecto=".$id_proyecto;		
		$query=$this->db->query($sentecia);
}

function eliminar_horas($id_proyecto=NULL, $id_estudiante= NULL)
{

	$query='DELETE FROM actividad  WHERE id_proyecto='.$id_proyecto.' AND id_estudiante='.$id_estudiante;

		if ($id_proyecto!=NULL && $id_estudiante!=NULL) {
			$this->db->query($query);
		}
}
function actualizar_horas($info)
{
	extract($info);
	$query="UPDATE actividad a SET a.horas=$horas, a.actividad='$actividad' WHERE id_actividad=$id_actividad";	
	$this->db->query($query);
}
function guardar_horas($info=NULL)
{
		extract($info);
	$query='INSERT INTO "public"."actividad" ("id_proyecto","actividad","horas","fecha","id_estudiante")';
	$query.=" VALUES(	'$id_proyecto','$actividad','$horas','$fecha','$id_estudiante');";
	$query=$this->db->query($query);		
}

function consultar_horas( $id_estudiante= NULL,$id_proyecto=NULL,$inicio=NULL,$final=NULL)
{

	$where="";

		if ($id_proyecto!=NULL &&  $id_proyecto!=0) {
			$where.= " AND a.id_proyecto =".$id_proyecto;
		}
		if ($id_estudiante!=NULL && $id_estudiante!=0) {
			$where.= " AND a.id_estudiante =".$id_estudiante;
		}
		if ($inicio!=NULL) {
			$where.= " AND fecha >('$inicio'::date)";
		}
		if ($final!=NULL) {
			$where.= " AND fecha <('$final'::date + '1 day'::interval)";
		}
	$query="SELECT id_actividad, 
					actividad, 
					to_char(fecha,'dd-mm-yyyy') as fecha,
					horas,
					p.nombre as proyecto,
					CONCAT_WS (' ', e.nombres, e.apellidos) as estudiante					
					FROM 	actividad  a
					INNER JOIN proyecto_becario p USING(id_proyecto)
					INNER JOIN estudiante e USING(id_estudiante)  WHERE actividad LIKE '%%'".$where."
				ORDER BY fecha  ASC";

	$query=$this->db->query($query);
	return $query->result_array();
}
function dar_baja($id_estudiante)
{
	$query="UPDATE estudiante SET becario = FALSE WHERE id_estudiante=".$id_estudiante;
	$this->db->query($query);
}

function reporte_proyectos($info=NULL)
{
	extract($info);
	$where="";
	if ($id_proyecto!=NULL) {
		$where=" WHERE pro.id_proyecto=".$id_proyecto;
	}

	$sentecia="SELECT
				pro.id_proyecto,
				pro.nombre,
				to_char(inicioproyecto,'dd/mm/yyyy') as inicio,
				to_char(finproyecto,'dd/mm/yyyy') as fin,
				array_agg(DISTINCT (d.comunidad|| ', ' || d.detalle || ', '|| mun.municipio ||', '||dep.departamento )) as lugar,
				array_agg(DISTINCT est.nombres || ' ' || est.apellidos) as alumno,
				SUM(act.horas) as horas
				FROM
				proyecto_becario AS pro
				INNER JOIN direccion AS d ON pro.id_direccion = d.id_direccion
				INNER JOIN org_municipio AS mun ON d.id_municipio = mun.id_municipio
				INNER JOIN org_departamento AS dep ON dep.id_departamento = mun.id_departamento_pais
				INNER JOIN actividad AS act ON pro.id_proyecto= act.id_proyecto
				INNER JOIN estudiante AS est ON est.id_estudiante= act.id_estudiante

					$where
				GROUP BY pro.id_proyecto
"; 
	$query=$this->db->query($sentecia);
	return $query->result_array();		
}
function info_constancia($id_proyecto='', $id_estudiante='')
{
		$sentecia="SELECT
				e.nombres,
				e.carnet,
				e.sexo,
				h.horas,
				e.apellidos,
				C .nombre as carrera,
				C .codigo,
				p.ciclo
				
			FROM
				estudiante AS e
			INNER JOIN (
				SELECT
					SUM (horas) AS horas,
					id_estudiante,
					id_proyecto
				FROM
					actividad
				WHERE
					id_estudiante = $id_estudiante
				AND id_proyecto = $id_proyecto
				GROUP BY
					id_estudiante, id_proyecto
			) AS h ON h.id_estudiante = e.id_estudiante 
			INNER JOIN carrera C ON C .id_carrera = e.id_carrera
			INNER JOIN proyecto_becario p ON p.id_proyecto= h.id_proyecto
"; 
	$query=$this->db->query($sentecia);
	return $query->result_array();		
}

function info_jefatura()
{
		$sentecia="SELECT
		CONCAT_WS (' ',titulo,nombres,apellidos) AS jefatura,
		sexo AS sexoj
		FROM
			tutor
		WHERE
			jefe = 1
		"; 
	$query=$this->db->query($sentecia);
	return $query->result_array();		
}

function actualizar_becario($info)
{
			extract($info);

		$sentecia="UPDATE estudiante  SET sexo ='$sexo', correo ='$email', telefono= '$telefono', id_carrera='$carrera' WHERE id_estudiante=".$id_estudiante;

		$query=$this->db->query($sentecia);
}

}
?>